package idc

import "math"

type IdSegment struct {
	Bizid   int64  `db:"bizid"`
	Bizname string `db:"bizname"`
	Maxid   uint64 `db:"maxid"`
	Idstep  uint64 `db:"idstep"`

	Customstep uint64

	MinId    uint64
	MiddleId uint64

	Created int64 `db:"created"`
	Updated int64 `db:"updated"`
}

func (seg *IdSegment) getMinId() uint64 {
	if seg.MinId == 0 {
		seg.MinId = seg.Maxid - seg.Idstep
	}

	return seg.MinId
}

func (seg *IdSegment) getMiddleId() uint64 {
	if seg.MiddleId == 0 {
		seg.MiddleId = seg.Maxid - uint64(math.Round(float64(seg.Idstep)/2))
	}
	return seg.MiddleId
}
